package cn.xopencode.recordservice.convert.robotroom;

import cn.xopencode.common.framework.vo.PageResult;
import cn.xopencode.recordservice.dal.mysql.dataobject.drytransformer.KvDryTransformerRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.kvoperation.KvOperationRecordOtherDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.kvtransformer.KvTransformerRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.lowroom.LowRoomRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.maintransformer.MainTransformerRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.meterroom.MeterRoomRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.robotroom.RobotRoomRecordDO;
import cn.xopencode.recordservice.dal.mysql.dataobject.sf6machine.Sf6MachineRecordOtherDO;
import cn.xopencode.recordservice.rpc.drytransformer.vo.DryTransformerRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.kvoperation.vo.KvOperationRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.kvtransformer.vo.KvTransformerRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.lowroom.vo.LowRoomRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.maintransformer.vo.MainTransformerRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.meterroom.vo.MeterRoomRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.robotroom.dto.AdminRecordPageDTO;
import cn.xopencode.recordservice.rpc.robotroom.vo.AdminRecordListVO;
import cn.xopencode.recordservice.rpc.robotroom.vo.RobotRoomRecordAdminPageVO;
import cn.xopencode.recordservice.rpc.sf6machine.vo.Sf6MachineRecordAdminPageVO;
import cn.xopencode.recordservice.service.robotroom.bo.AdminRecordPageBO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

@Mapper
public interface AdminRecordConvert {
    AdminRecordConvert INSTANCE = Mappers.getMapper(AdminRecordConvert.class);

    @Mapping(source = "records", target = "list")
    PageResult<RobotRoomRecordAdminPageVO> convert(IPage<RobotRoomRecordDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<KvOperationRecordAdminPageVO> convert2(IPage<KvOperationRecordOtherDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<KvTransformerRecordAdminPageVO> convert3(IPage<KvTransformerRecordDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<DryTransformerRecordAdminPageVO> convert4(IPage<KvDryTransformerRecordDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<MainTransformerRecordAdminPageVO> convert5(IPage<MainTransformerRecordDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<Sf6MachineRecordAdminPageVO> convert6(IPage<Sf6MachineRecordOtherDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<LowRoomRecordAdminPageVO> convert7(IPage<LowRoomRecordDO> recordDOIPage);

    @Mapping(source = "records", target = "list")
    PageResult<MeterRoomRecordAdminPageVO> convert8(IPage<MeterRoomRecordDO> recordDOIPage);

    AdminRecordPageBO convert(AdminRecordPageDTO pageDTO);

    AdminRecordListVO convert(RobotRoomRecordDO recordDO);

    AdminRecordListVO convert(Sf6MachineRecordOtherDO recordDO);

    AdminRecordListVO convert(MainTransformerRecordDO recordDO);

    AdminRecordListVO convert(LowRoomRecordDO recordDO);

    AdminRecordListVO convert(KvTransformerRecordDO recordDO);

    AdminRecordListVO convert(KvDryTransformerRecordDO recordDO);

    AdminRecordListVO convert(MeterRoomRecordDO recordDO);
}
